// 判断是否为对象
var isObject = function (value) {
  return Object.prototype.toString.call(value) === '[object Object]'
}
// 判断是否为数组
var isArray = Array.isArray || function (value) {
  return Object.prototype.toString.call(value) === '[object Array]'
}

var setStore = function (Store) {
  var obj = {
    // 获取
    get: function (key) {
      var value = Store.getItem(key);
      if (value === null) return false; // 如果不存在
      value = JSON.parse(value)
      return value;
    },
    // 设置
    set: function (key, value) {
      if (isObject(value) || isArray(value)) { // 如果是对象
        value = JSON.stringify(value);
      }
      Store.setItem(key, value);
    },
    // 删除项
    remove: function (key) {
      this.get(key) && Store.removeItem(key);
    },
    //  清空
    clear: function () {
      Store.clear(); // 清空本地存储
    }
  };
  return obj;
};

const storage = {
  localStorage: setStore(window.localStorage),
  sessionStorage: setStore(window.sessionStorage)
}
export default storage